package com.efast.dmom.mgmt.dao.mes.report;

import java.util.Date;
import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.efast.dmom.mgmt.bean.mes.report.EachQualityGateDoorIndexBean;
import com.efast.dmom.mgmt.bean.mes.report.IntervalConfigBean;
import com.efast.dmom.mgmt.bean.mes.report.QualityGateStationBean;
import com.efast.dmom.mgmt.bean.mes.report.VehicleCarInformationBean;
import com.efast.dmom.mgmt.bean.mes.report.VehicleQualityIndexBean;
import com.efast.dmom.mgmt.entity.report.ReportVehicleRetrospect;
import com.efast.dmom.mgmt.utils.Assist;

public interface ReportVehicleRetrospectDao {
	
//根据vin号或者自编号获取合拼信息
List<ReportVehicleRetrospect> getSpliceInfo(@Param("param") String param);
//根据自编号获取lotNname
List<ReportVehicleRetrospect> getSelfLotName(String selfNumber);
//获取货车的追溯信息
List<ReportVehicleRetrospect> getGoodsInfo(ReportVehicleRetrospect enti);
Long getGoodsInfoCount(ReportVehicleRetrospect enti);
//获取追溯信息
List<ReportVehicleRetrospect> getInfo(ReportVehicleRetrospect enti);
Long getInfoCount(ReportVehicleRetrospect enti);

//滞留车信息
List<VehicleCarInformationBean> getVehicleCarInformation(@Param("workshopName") String workshopName,@Param("assist") Assist assit,@Param("sql") String sql);

//滞留车信息数量
int getVehicleCarInformationCount(@Param("workshopName") String workshopName,@Param("assist") Assist assit,@Param("sql") String sql);

//根据vin号或者自编号获取合拼信息
List<ReportVehicleRetrospect> getSpliceInfoByEqual(@Param("param") String param);

//各质量门单台缺陷项次信息
List<EachQualityGateDoorIndexBean> selectQtyAndDefectqtyByDPY(@Param("assist") Assist assist);

//各质量门一次交检合格率信息
List<EachQualityGateDoorIndexBean> selectQtyAndDefectqtyByFTQ(@Param("assist") Assist assist);

//总装各质量门工位信息
List<QualityGateStationBean> selectQualityGateStationInformation();

//获取总装质量门不同的工艺路线id
List<Integer> selectQualityGateStationRouteId();

//获取工艺路线上的工序及工位
List<QualityGateStationBean> selectOperationSortList(@Param("list") List<Integer> routeIdList);

//获取整车单台缺陷项次
List<VehicleQualityIndexBean> selectVehicleDPVInformation(@Param("assist") Assist assist);

//获取完成总装各质量门车辆在质量门的缺陷车辆以及缺陷总数
List<VehicleQualityIndexBean> selectVehicleQualityIndexFPYData(@Param("assist") Assist assist);

//获取区间配置信息
List<IntervalConfigBean> getIntervalConfigData();

//查询滞留车信息
List<VehicleCarInformationBean> SelectStrandedCarInformation(@Param("data") IntervalConfigBean data,@Param("assist") Assist assist);

//获取区间配置中含有的车间类型，计算排除非工作日
List<IntervalConfigBean> selectIntervalConfigWorkShopType();

//获取休息日天数
List<Date> selectRestDayCount(@Param("sql") String sql,@Param("date") String date);
int selectQtyAndDefectqtyByDPYCount(@Param("assist") Assist assist);
int selectQtyAndDefectqtyByFTQCount(@Param("assist") Assist assist);
int selectVehicleDPVInformationCount(@Param("assist") Assist assist);
int selectVehicleQualityIndexFPYDataCount(@Param("assist") Assist assist);

}
